package com.dk.hi.core.actor.skill;

import com.dk.hi.core.Element;

/**
 * Represents a skill of an actor. A skill cannot cast multiple elements. Only one!
 */
public abstract class Skill {
	/**
	 * The specific element of the skill. May be null for a non magic skill
	 */
	private Element element;

	/**
	 * The minimum range of the skill.
	 */
	private int rangeMin;

	/**
	 * The maximum range of the skill. Setting to 0 for personal skill only
	 */
	private int rangeMax;

	/**
	 * The minimum base damage of the skill
	 */
	private int damageMin;

	/**
	 * The maximum base damage of the skill
	 */
	private int damageMax;

	/**
	 * The action point cost to execute this action
	 */
	private int actionPointCost;

	/**
	 * The pattern of damage area. When lunched, the skill will damage all cells within this pattern
	 */
	private DamagePattern damagePattern;

	/**
	 * The pattern of cells available to lunch the skill. May be null if there is no lunch pattern.
	 */
	private LunchPattern lunchPattern;
}
